Firebase Authentication (Email, Google, Facebook)

Mobile App Development - ফ্লাটার (Flutter) - Firebase এবং Backend Integration
262

Flutter এ Firebase Authentication ব্যবহার করে Email, Google, এবং Facebook লগইন ইন্টিগ্রেশন করা যায়। এটি ব্যবহারকারীদের সুরক্ষিতভাবে সাইন আপ, লগ ইন এবং লগ আউট করতে সহায়তা করে। নিচে Firebase Authentication এর ধাপগুলো এবং Email, Google, এবং Facebook লগইন ইন্টিগ্রেশনের উদাহরণ দেওয়া হলো।

Firebase Authentication সেটআপ করার ধাপ:

ধাপ ১: Firebase Console এ একটি প্রজেক্ট তৈরি করা:

  1. Firebase Console এ যান এবং একটি নতুন প্রজেক্ট তৈরি করুন।
  2. প্রজেক্ট তৈরি হলে, অ্যাপ অ্যাড করুন (Android এবং iOS উভয়ের জন্য) এবং google-services.json (Android) এবং GoogleService-Info.plist (iOS) ডাউনলোড করুন।

ধাপ ২: Flutter অ্যাপে Firebase যুক্ত করা:

pubspec.yaml ফাইলে নিচের প্যাকেজগুলো যুক্ত করুন:

dependencies:
  firebase_core: ^2.1.1
  firebase_auth: ^4.2.2
  google_sign_in: ^6.1.0
  flutter_facebook_auth: ^6.0.2

Firebase কনফিগারেশন ফাইল (google-services.json এবং GoogleService-Info.plist) যথাযথভাবে Android এবং iOS ফোল্ডারে যুক্ত করুন।

ধাপ ৩: Firebase Authentication সক্ষম করা:

  1. Firebase Console এ প্রজেক্ট সিলেক্ট করুন।
  2. Authentication মেনুতে গিয়ে Sign-in method ট্যাবে যান।
  3. Email/Password, Google, এবং Facebook সাইন-ইন পদ্ধতি সক্রিয় করুন।

Email Authentication ইন্টিগ্রেশন:

ধাপ ৪: Flutter কোডে Firebase Authentication যুক্ত করা:

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_auth/firebase_auth.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Firebase Auth Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: AuthScreen(),
    );
  }
}

class AuthScreen extends StatefulWidget {
  @override
  _AuthScreenState createState() => _AuthScreenState();
}

class _AuthScreenState extends State<AuthScreen> {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  final TextEditingController _emailController = TextEditingController();
  final TextEditingController _passwordController = TextEditingController();

  Future<void> _signInWithEmail() async {
    try {
      UserCredential userCredential = await _auth.signInWithEmailAndPassword(
        email: _emailController.text,
        password: _passwordController.text,
      );
      print('User signed in: ${userCredential.user?.email}');
    } catch (e) {
      print('Error: $e');
    }
  }

  Future<void> _signUpWithEmail() async {
    try {
      UserCredential userCredential = await _auth.createUserWithEmailAndPassword(
        email: _emailController.text,
        password: _passwordController.text,
      );
      print('User registered: ${userCredential.user?.email}');
    } catch (e) {
      print('Error: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Firebase Email Auth')),
      body: Padding(
        padding: EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(
              controller: _emailController,
              decoration: InputDecoration(labelText: 'Email'),
            ),
            TextField(
              controller: _passwordController,
              decoration: InputDecoration(labelText: 'Password'),
              obscureText: true,
            ),
            ElevatedButton(
              onPressed: _signInWithEmail,
              child: Text('Sign In'),
            ),
            ElevatedButton(
              onPressed: _signUpWithEmail,
              child: Text('Sign Up'),
            ),
          ],
        ),
      ),
    );
  }
}

Google Sign-In ইন্টিগ্রেশন:

ধাপ ৫: Google Sign-In প্যাকেজ কনফিগার করা:

Android এর জন্য android/app/build.gradle ফাইলে নিচের লাইন যুক্ত করুন:

implementation 'com.google.android.gms:play-services-auth:20.0.0'

iOS এর জন্য, Info.plist এ নিচের কনফিগারেশন যুক্ত করুন:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>YOUR_REVERSED_CLIENT_ID</string>
    </array>
  </dict>
</array>

Flutter কোডে Google Sign-In ইন্টিগ্রেশন:

import 'package:google_sign_in/google_sign_in.dart';

Future<void> _signInWithGoogle() async {
  final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
  final GoogleSignInAuthentication googleAuth = await googleUser!.authentication;

  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );

  await _auth.signInWithCredential(credential);
  print('User signed in with Google: ${_auth.currentUser?.email}');
}
  • Google Sign-In ব্যবহার করে ইউজার লগইন করার জন্য GoogleSignIn প্যাকেজ ব্যবহার করা হয় এবং ক্রেডেনশিয়াল তৈরি করে FirebaseAuth এ লগইন করা হয়।

Facebook Sign-In ইন্টিগ্রেশন:

ধাপ ৬: Facebook লগইন সেটআপ:

Facebook for Developers কনসোলে একটি অ্যাপ তৈরি করুন এবং Facebook Login সক্ষম করুন।

Android এবং iOS এর জন্য flutter_facebook_auth প্যাকেজ কনফিগার করুন।

iOS এর Info.plist ফাইলে নিম্নোক্ত সেটিংস যোগ করুন:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>fb{your-facebook-app-id}</string>
    </array>
  </dict>
</array>

Flutter কোডে Facebook Sign-In ইন্টিগ্রেশন:

import 'package:flutter_facebook_auth/flutter_facebook_auth.dart';

Future<void> _signInWithFacebook() async {
  final LoginResult result = await FacebookAuth.instance.login();

  if (result.status == LoginStatus.success) {
    final AccessToken accessToken = result.accessToken!;
    final credential = FacebookAuthProvider.credential(accessToken.token);
    await _auth.signInWithCredential(credential);
    print('User signed in with Facebook: ${_auth.currentUser?.email}');
  } else {
    print('Facebook login failed: ${result.message}');
  }
}
  • flutter_facebook_auth প্যাকেজ ব্যবহার করে Facebook লগইন করার জন্য ক্রেডেনশিয়াল তৈরি করা হয় এবং FirebaseAuth এর মাধ্যমে লগইন করা হয়।

Firebase Authentication সারাংশ:

  • Email Authentication: signInWithEmailAndPassword এবং createUserWithEmailAndPassword মেথড ব্যবহার করে ইউজার লগইন এবং রেজিস্ট্রেশন করা হয়।
  • Google Sign-In: GoogleSignIn প্যাকেজ ব্যবহার করে Google লগইন ইন্টিগ্রেশন করা হয়।
  • Facebook Sign-In: flutter_facebook_auth প্যাকেজ ব্যবহার করে Facebook লগইন ইন্টিগ্রেশন করা হয়।

এই পদ্ধতিগুলো ব্যবহার করে Flutter এ Firebase Authentication সফলভাবে ইন্টিগ্রেট করা যায়, যা সুরক্ষিত এবং বহুমুখী ইউজার লগইন পদ্ধতি প্রদান করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...